/*************************************************************
  Cocus Core - A simple PIC16 core emulator for PIC18
  
  version 2.0 by Santiago H. (santiagohssl@gmail.com)

  UNDER GNU LGPL

  file: vmasm.h
*************************************************************/

#include <p18cxxx.h>
#include "vmcore.h"

#ifndef CORE2_ASSEMBLY
#define CORE2_ASSEMBLY

void vm_emu_bsf_bcf(void *dev, vm_opcode * opcode, char set);

void vm_emu_btfss_btfsc(void *dev, vm_opcode * opcode, char set);

void vm_emu_movwf(void *dev, vm_opcode * opcode);

void vm_emu_swapf(void *dev, vm_opcode * opcode);

void vm_emu_incfsz_decfsz(void *dev, vm_opcode * opcode, char sum);

void vm_emu_goto(void *dev, vm_opcode * opcode);

void vm_emu_call(void *dev, vm_opcode * opcode);

void vm_emu_return(void *dev);

void vm_emu_retfie(void *dev);

void vm_emu_iorlw_xorlw(void *dev, vm_opcode * opcode, char i);

void vm_emu_andlw(void *dev, vm_opcode * opcode);

void vm_emu_addlw(void *dev, vm_opcode * opcode);

void vm_emu_sublw(void *dev, vm_opcode * opcode);

void vm_emu_xorwf_iorwf(void *dev, vm_opcode * opcode, char i);

void vm_emu_subwf_addwf(void *dev, vm_opcode * opcode, char add);

void vm_emu_andwf(void *dev, vm_opcode * opcode);

void vm_emu_clrw_clrf(void *dev, vm_opcode * opcode);

void vm_emu_incf_decf(void *dev, vm_opcode * opcode, char sum);

void vm_emu_comf(void *dev, vm_opcode * opcode);

void vm_emu_movf(void *dev, vm_opcode * opcode);

void vm_emu_rlf_rrf(void *dev, vm_opcode * opcode, char r);

#endif

